package lw.badwordsfucker;


import org.bukkit.Bukkit;
import org.bukkit.configuration.Configuration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;

import java.io.IOException;
import java.util.HashMap;

public class ChatMSGChecker implements Listener {
    Configuration configuration = BadWordsFucker.getPlugin(BadWordsFucker.class).getConfig();
    @EventHandler
    public void Join(PlayerJoinEvent event){
        String name = event.getPlayer().getName();
        if (configuration.get("Players." + name) == null){
            configuration.set("Players." + name , 0);

        }
    }



    @EventHandler
    public void Chat(AsyncPlayerChatEvent event) throws IOException {
        String name = event.getPlayer().getName(); //获取玩家名字
        int df = configuration.getInt("Players." + name); //获取配置文件里玩家口嗨数量

        String msg = event.getMessage(); //获取message值后面传入api
        String json = new ParseJSON().ripeJSON(msg); //传入message并获取json

        Player player = event.getPlayer(); //初始化定义player_hashmap
        HashMap<Player, Double> threshold = new HashMap<>();
        threshold.putIfAbsent(player, (double) 0);


        if (json == "failed" && !event.getPlayer().hasPermission("badwordsfucker.bypass")){
            String type = ParseJSON.type;
            event.setCancelled(true);

            df = df + 1;
            configuration.set("Players." + name , df); //更改配置文件里玩家口嗨数量

            int typeNum = Integer.parseInt(type);
            if (typeNum == 1) { //shitMountain
                threshold.put(player,threshold.get(player) + 0.5); //threshold.put(玩家,该玩家违规值+0.5);
                event.getPlayer().sendTitle("§4请注意你的发言！" , "§4你已被警告 " + df + " 次！"); //
                event.getPlayer().sendMessage("§bZenith §eNetwork §b安全中心§f§l>> §4你已被警告！请注意你的言辞！" + df);
            } else if (typeNum == 2) {
                threshold.put(player,threshold.get(player) + 0.5);
                event.getPlayer().sendTitle("§d不能涩涩哦！" , "§4你已被警告 " + df + " 次！");
                event.getPlayer().sendMessage("§bZenith §eNetwork §b安全中心§f§l>> §4你已被警告！请注意你的言辞！" + df);
            } else if (typeNum == 3) {
                threshold.put(player,threshold.get(player) + 1);
                event.getPlayer().sendTitle("§e佛祖：功德-1" , "§4你已被警告 " + df + " 次！");
                event.getPlayer().sendMessage("§bZenith §eNetwork §b安全中心§f§l>> §4你已被警告！请注意你的言辞！" + df);
            } else if (typeNum == 4) {
                threshold.put(player,threshold.get(player) + 2);
                event.getPlayer().sendTitle("", "§4你已被警告 " + df + " 次！");
                event.getPlayer().sendMessage("§6§kOOO§6获得成就: §a吴京国籍§6!§6§kOOO");
            } else if (typeNum == 5) {
                threshold.put(player,threshold.get(player) + 1.5);
                event.getPlayer().sendTitle("" , "§4你已被警告 " + df + " 次！"); //
                event.getPlayer().sendMessage("§bZenith §eNetwork §b安全中心§f§l>> §4你已被警告！请注意你的言辞！" + df);
                event.getPlayer().sendMessage("我就是你能文能武的父亲啊看你就不知道野爹的意思啊你这种货色不应该把你抛之千里之外的吗到现在跟我学了点本事就蹬鼻子上脸翻脸不认我这个平时待你不薄的爸爸你快速度速度速度的反抗你可爱的父亲啊你是不是傻逼兮兮的想要冲到我面前打我一顿啊爸爸你觉得你这么做是不是大逆不道而我随随便便殴打你所以拜托你以后不要在我面前装了好吗你自己是不是一个垃圾是的你张牙舞爪的好像一个傻逼你好像就是个垃圾速度井底之蛙你明白我的意思么可以滚蛋了么反反复复我是不是你父亲你是不是傻逼兮兮的傻逼啊还不滚蛋吗，还继续在我这丢脸吗你是不是一个自己垃圾是的你自己告诉你大哥我，你那弱小的身躯能承受住我那犀利的语言你好像允文允武的窝囊废你知不知道，我在拳打脚踢你的朋友圈，我是不是你可爱的父亲你自己就是一个垃圾啊你为什么这么捧别人臭脚你能不能速度速度速度的站出来啊衮回家可是爸爸又是情不自禁的放过你也许在你这种幼稚人的眼里那点破三字经就是你的秘密武器了吧可能我的语言对你来说已经无关紧要你就是一个哈巴狗，你知道吗你难道不知道你完完全全的不是我的对手你为什么是一条哈巴狗你嘻嘻哈的干什么啊草***的我是不是反反复复啊你自己不是垃圾速度不够反抗我毕竟爸爸在幼稚的氛围早已是千里之外了这还用爸爸这个意思的跟你浪费时你是不是耀武扬威的傻逼兮兮的窝囊废你乱七八糟的告诉我好不好你这个小伙子是不是你个傻逼兮兮的窝囊废我就是你耀武扬威的爸爸我真的不知道要能拿什么词语来跟你说大哥最后告诉你，我不是什么所谓的大手、但是我你眼里永远是神圣而不可侵犯的你懂吗到底是怎么把你这酒囊饭袋生出来的你好像就是一个傻逼兮兮的窝囊废我是不是随随便便的羞辱你啊你好像不能速度速度速度的告诉你可爱的父亲了哈哈哈哈，你个傻逼一样的少年你难道还搞不清楚情况吗篮子似的你有什么资格耀武扬威呢不就是学点狗叫的本事干嘛唬这唬那的你觉得你唬的过我吗");
            } else if (typeNum == 6){
                threshold.put(player,threshold.get(player) + 2);
                event.getPlayer().sendTitle("§4请注意你的发言！" , "§4你已被警告 " + df + " 次！"); //
                event.getPlayer().sendMessage("§bZenith §eNetwork §b安全中心§f§l>> §4你已被警告！请注意你的言辞！" + df);
            } else if (typeNum == 7) {
                threshold.put(player,threshold.get(player) + 2);
                event.getPlayer().sendTitle("§4请注意你的发言！" , "§4你已被警告 " + df + " 次！"); //
                event.getPlayer().sendMessage("§bZenith §eNetwork §b安全中心§f§l>> §4你已被警告！请注意你的言辞！" + df);
            }

            if (threshold.get(player) >= 5){
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "mute " + event.getPlayer().getName() + configuration.getString("muteTime")); //神权玩家
            }
            if (threshold.get(player) >= 10){
                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "kick " + event.getPlayer().getName() + " 周树人：我所佩服诸公的只有一点，就是这种东西也居然会有发表的勇气!\nJiuRanX:FK Q");
            }
        }
    }
}
